Excel VBA 8.39公式错值BUG多 批量将错值替换为数字

您所在的位置:网站首页 vba 强制转换为数字 Excel VBA 8.39公式错值BUG多 批量将错值替换为数字

Excel VBA 8.39公式错值BUG多 批量将错值替换为数字

#Excel VBA 8.39公式错值BUG多 批量将错值替换为数字| 来源: 网络整理| 查看: 265

原标题:Excel VBA 8.39公式错值BUG多 批量将错值替换为数字

前景提要

在昨天的案例中,我们学习了如何通过VBA的方式,让公式中的错值所在的单元格区域错值不可见,同时不改变单元格内部的公式,方便数据表的二次循环利用

但是有小伙伴们就表示,虽然让公式错值不可见,从数据整体外观上来看,是清新了很多,但是对于后期数据的核查筛选以及汇总来说,依然存在很大的不方便,错值还是错值,还是没有办法参与运算,并且有时候需要单独看看这些错值是哪里错,不可见之后,反而不方便看了。

是否能够将错值进行统一替换,替换成为一个我们想要的结果

场景说明

这样的操作场景,确实是我们上节没有考虑到的结果,那么我们今天继续来实现这个场景需要这是我们有修改了一下之后的场景,上面小伙伴反馈的情况确实是有一定的影响的,数据没有办法进行二次计算,虽然错值不可见,但是一些相关的计算还是没有办法计算,那么我们今天来讲这些错值转化成为0,这样就不会影响公式的计算了。

代码区

Sub tests2()

Dim rng As Range, a As Range

Set rng = Application.InputBox("请选择单元格区域", "区域的选择", , , , , , 8)

For Each a In rng

If IsError(a.Value) Then

a.Value = 0

End If

Next

End Sub

看看效果经过代码的这一番操作操作之后,我们可以看到所有的错值都已经被替换成为了数字0,替换成为数字0 之后,后面的公式的计算就完全不受到任何的影响了。

当然了,你也可以改动下代码,将所有的错值替换成为你想要的展示结果,这个功能也可以理解为是针对公式错值的批量替换

代码解析

这里错值的修改,我们这里采用的是遍历循环单元格的方式,那么如何判断一个单元格是否是错值呢?

IsError(range.value)

这里需要注意的是,这里range后面跟着是一定是value,不能是text

在很多情况下,range.text和range.value返回的结果都是相同的,都是单元格本身的内容,但是在一些特别的场合下,这两个返回的结果是不同的,比方说今天的案例

针对单元格是否是错值,我们需要用的是range.value

我们可以一起来看看代码我们可以看到在错值的判断中,这两个返回的结果是不同的,只有value返回的结果才是正确的。所以这一点大家要留意。

找到了错值之后,我们就可以针对单元格内容进行修改了。这个就非常的简单了。

返回搜狐,查看更多

责任编辑:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3